/** * 비동기식 데이터 - 관심상품 갯수 */ CAPP_ASYNC_METHODS.aDatasetList.push('Wishcount'); CAPP_ASYNC_METHODS.Wishcount = { __iWishCount: null, __$target: $('#xans_myshop_interest_prd_cnt'), __$target2: CAPP_ASYNC_METHODS.$xansMyshopMain.find('.xans_myshop_main_interest_prd_cnt'), isUse: function() { if (this.__$target.length > 0) { return true; } if (this.__$target2.length > 0) { return true; } if ( typeof EC_APPSCRIPT_SDK_DATA != "undefined" && jQuery.inArray('personal', EC_APPSCRIPT_SDK_DATA ) > -1 ) { return true; } return false; }, restoreCache: function() { var sCookieName = 'wishcount_' + EC_SDE_SHOP_NUM; var re = new RegExp('(?:^| |;)' + sCookieName + '=([^;]+)'); var aCookieValue = document.cookie.match(re); if (aCookieValue) { this.__iWishCount = parseInt(aCookieValue[1], 10); return true; } return false; }, setData: function(sData) { this.__iWishCount = Number(sData); }, execute: function() { if (SHOP.getLanguage() === 'ko_KR') { this.__$target.html(this.__iWishCount + '개'); } else { this.__$target.html(this.__iWishCount); } this.__$target2.html(this.__iWishCount); }, getData: function() { return { count: this.__iWishCount }; } }; /** * 비동기식 데이터 - 최근 본 상품 */ CAPP_ASYNC_METHODS.aDatasetList.push('recent'); CAPP_ASYNC_METHODS.recent = { STORAGE_KEY: 'localRecentProduct' + EC_SDE_SHOP_NUM, __$target: $('.xans-layout-productrecent'), __aData: null, isUse: function() { this.__$target.hide(); if (this.__$target.find('.xans-record-').length > 0) { return true; } return false; }, restoreCache: function() { this.__aData = []; var iTotalCount = CAPP_ASYNC_METHODS.RecentTotalCount.getData(); if (iTotalCount == 0) { // 총 갯수가 없는 경우 복구할 것이 없으므로 복구한 것으로 리턴 return true; } var sAdultImage = ''; if (window.sessionStorage === undefined) { return false; } var sSessionStorageData = window.sessionStorage.getItem(this.STORAGE_KEY); if (sSessionStorageData === null) { return false; } var iViewCount = EC_FRONT_JS_CONFIG_SHOP.recent_count; this.__aData = []; var aStorageData = $.parseJSON(sSessionStorageData); var iCount = 1; var bDispRecent = true; for (var iKey in aStorageData) { var sProductImgSrc = aStorageData[iKey].sImgSrc; if (isFinite(iKey) === false) { continue; } var aDataTmp = []; aDataTmp.recent_img = getImageUrl(sProductImgSrc); aDataTmp.name = aStorageData[iKey].sProductName; aDataTmp.disp_recent = true; aDataTmp.is_adult_product = aStorageData[iKey].isAdultProduct; aDataTmp.link_product_detail = aStorageData[iKey].link_product_detail; //aDataTmp.param = '?product_no=' + aStorageData[iKey].iProductNo + '&cate_no=' + aStorageData[iKey].iCateNum + '&display_group=' + aStorageData[iKey].iDisplayGroup; aDataTmp.param = filterXssUrlParameter(aStorageData[iKey].sParam); if ( iViewCount < iCount ) { bDispRecent = false; } aDataTmp.disp_recent = bDispRecent; iCount++; this.__aData.push(aDataTmp); } return true; /** * get SessionStorage image url * @param sNewImgUrl DB에 저장되어 있는 tiny값 */ function getImageUrl(sImgUrl) { if (typeof(sImgUrl) === 'undefined' || sImgUrl === null) { return; } var sNewImgUrl = ''; if (sImgUrl.indexOf('http://') >= 0 || sImgUrl.indexOf('https://') >= 0 || sImgUrl.substr(0, 2) === '//') { sNewImgUrl = sImgUrl; } else { sNewImgUrl = EC_FRONT_JS_CONFIG_SHOP.cdnUrl + '/web/product/tiny/' + sImgUrl; } return sNewImgUrl; } /** * 파라미터 URL에서 XSS 공격 관련 파라미터를 필터링합니다. ECHOSTING-162977 * @param string sParam 파라미터 * @return string 필터링된 파라미터 */ function filterXssUrlParameter(sParam) { sParam = sParam || ''; var sPrefix = ''; if (sParam.substr(0, 1) === '?') { sPrefix = '?'; sParam = sParam.substr(1); } var aParam = {}; var aParamList = (sParam).split('&'); $.each(aParamList, function() { var aMatch = this.match(/^([^=]+)=(.*)$/); if (aMatch) { aParam[aMatch[1]] = aMatch[2]; } }); return sPrefix + $.param(aParam); } }, setData: function(aData) { this.__aData = aData; // 쿠키엔 있지만 sessionStorage에 없는 데이터 복구 if (window.sessionStorage) { var oNewStorageData = []; for ( var i = 0 ; i < aData.length ; i++) { if (aData[i].bNewProduct !== true) { continue; } var aNewStorageData = { 'iProductNo': aData[i].product_no, 'sProductName': aData[i].name, 'sImgSrc': aData[i].recent_img, 'sParam': aData[i].param, 'link_product_detail': aData[i].link_product_detail }; oNewStorageData.push(aNewStorageData); } if ( oNewStorageData.length > 0 ) { sessionStorage.setItem(this.STORAGE_KEY , JSON.stringify(oNewStorageData)); } } }, execute: function() { var sAdult19Warning = EC_FRONT_JS_CONFIG_SHOP.adult19Warning; var aData = this.__aData; var aNodes = this.__$target.find('.xans-record-'); var iRecordCnt = aNodes.length; var iAddedElementCount = 0; var aNodesParent = $(aNodes[0]).parent(); for ( var i = 0 ; i < aData.length ; i++) { if (!aNodes[i]) { $(aNodes[iRecordCnt - 1]).clone().appendTo(aNodesParent); iAddedElementCount++; } } if (iAddedElementCount > 0) { aNodes = this.__$target.find('.xans-record-'); } if (aData.length > 0) { this.__$target.show(); } for ( var i = 0 ; i < aData.length ; i++) { assignVariables(aNodes[i], aData[i]); } // 종료 카운트 지정 if (aData.length < aNodes.length) { iLength = aData.length; deleteNode(); } recentBntInit(this.__$target); /** * 패치되지 않은 노드를 제거 */ function deleteNode() { for ( var i = iLength ; i < aNodes.length ; i++) { $(aNodes[i]).remove(); } } /** * oTarget 엘레먼트에 aData의 변수를 어싸인합니다. * @param Element oTarget 변수를 어싸인할 엘레먼트 * @param array aData 변수 데이터 */ function assignVariables(oTarget, aData) { var recentImage = aData.recent_img; if (sAdult19Warning === 'T' && CAPP_ASYNC_METHODS.member.getMemberIsAdult() === 'F' && aData.is_adult_product === 'T') { recentImage = EC_FRONT_JS_CONFIG_SHOP.adult19BaseTinyImage; }; var $oTarget = $(oTarget); var sHtml = $oTarget.html(); sHtml = sHtml.replace('about:blank', recentImage) .replace('##param##', aData.param) .replace('##name##',aData.name) .replace('##link_product_detail##', aData.link_product_detail); $oTarget.html(sHtml); if (aData.disp_recent === true) { $oTarget.removeClass('displaynone'); } } function recentBntInit($target) { // 화면에 뿌려진 갯수 var iDisplayCount = 0; // 보여지는 style var sDisplay = ''; var iIdx = 0; // var iDisplayNoneIdx = 0; var nodes = $target.find('.xans-record-').each(function() { sDisplay = $(this).css('display'); if (sDisplay != 'none') { iDisplayCount++; } else { if (iDisplayNoneIdx == 0) { iDisplayNoneIdx = iIdx; } } iIdx++; }); var iRecentCount = nodes.length; var bBtnActive = iDisplayCount > 0; $('.xans-layout-productrecent .prev').unbind('click').click(function() { if (bBtnActive !== true) return; var iFirstNode = iDisplayNoneIdx - iDisplayCount; if (iFirstNode == 0 || iDisplayCount == iRecentCount) { alert(__('최근 본 첫번째 상품입니다.')); return; } else { iDisplayNoneIdx--; $(nodes[iDisplayNoneIdx]).hide(); $(nodes[iFirstNode - 1]).removeClass('displaynone'); $(nodes[iFirstNode - 1]).fadeIn('fast'); } }).css( { cursor : 'pointer' }); $('.xans-layout-productrecent .next').unbind('click').click(function() { if (bBtnActive !== true) return; if ( (iRecentCount ) == iDisplayNoneIdx || iDisplayCount == iRecentCount) { alert(__('최근 본 마지막 상품입니다.')); } else { $(nodes[iDisplayNoneIdx]).fadeIn('fast'); $(nodes[iDisplayNoneIdx]).removeClass('displaynone'); $(nodes[ (iDisplayNoneIdx - iDisplayCount)]).hide(); iDisplayNoneIdx++; } }).css( { cursor : 'pointer' }); } } }; /** * 비동기식 데이터 - 최근본상품 총 갯수 */ CAPP_ASYNC_METHODS.aDatasetList.push('RecentTotalCount'); CAPP_ASYNC_METHODS.RecentTotalCount = { __iRecentCount: null, __$target: CAPP_ASYNC_METHODS.$xansMyshopMain.find('.xans_myshop_main_recent_cnt'), isUse: function() { if (this.__$target.length > 0) { return true; } return false; }, restoreCache: function() { var sCookieName = 'recent_plist'; if (EC_SDE_SHOP_NUM > 1) { sCookieName = 'recent_plist' + EC_SDE_SHOP_NUM; } var re = new RegExp('(?:^| |;)' + sCookieName + '=([^;]+)'); var aCookieValue = document.cookie.match(re); if (aCookieValue) { this.__iRecentCount = decodeURI(aCookieValue[1]).split('|').length; } else { this.__iRecentCount = 0; } }, execute: function() { this.__$target.html(this.__iRecentCount); }, getData: function() { if (this.__iRecentCount === null) { // this.isUse값이 false라서 복구되지 않았는데 이 값이 필요한 경우 복구 this.restoreCache(); } return this.__iRecentCount; } }; /** * 비동기식 데이터 - 주문정보 */ CAPP_ASYNC_METHODS.aDatasetList.push('Order'); CAPP_ASYNC_METHODS.Order = { __iOrderCount: null, __iOrderTotalPrice: null, __iGradeIncreaseValue: null, __$target: $('#xans_myshop_bankbook_order_count'), __$target2: $('#xans_myshop_bankbook_order_price'), __$target3: $('#xans_myshop_bankbook_grade_increase_value'), isUse: function() { if (CAPP_ASYNC_METHODS.IS_LOGIN === true) { if (this.__$target.length > 0) { return true; } if (this.__$target2.length > 0) { return true; } if (this.__$target3.length > 0) { return true; } } return false; }, restoreCache: function() { var sCookieName = 'order_' + EC_SDE_SHOP_NUM; var re = new RegExp('(?:^| |;)' + sCookieName + '=([^;]+)'); var aCookieValue = document.cookie.match(re); if (aCookieValue) { var aData = jQuery.parseJSON(decodeURIComponent(aCookieValue[1])); this.__iOrderCount = aData.total_order_count; this.__iOrderTotalPrice = aData.total_order_price; this.__iGradeIncreaseValue = Number(aData.grade_increase_value); return true; } return false; }, setData: function(aData) { this.__iOrderCount = aData['total_order_count']; this.__iOrderTotalPrice = aData['total_order_price']; this.__iGradeIncreaseValue = Number(aData['grade_increase_value']); }, execute: function() { this.__$target.html(this.__iOrderCount); this.__$target2.html(this.__iOrderTotalPrice); this.__$target3.html(this.__iGradeIncreaseValue); }, getData: function() { return { total_order_count: this.__iOrderCount, total_order_price: this.__iOrderTotalPrice, grade_increase_value: this.__iGradeIncreaseValue }; } }; /** * 비동기식 데이터 - Benefit */ CAPP_ASYNC_METHODS.aDatasetList.push('Benefit'); CAPP_ASYNC_METHODS.Benefit = { __aBenefit: null, __$target: $('.xans-myshop-asyncbenefit'), isUse: function() { if (CAPP_ASYNC_METHODS.IS_LOGIN === true) { if (this.__$target.length > 0) { return true; } } return false; }, setData: function(aData) { this.__aBenefit = aData; }, execute: function() { var aFilter = ['group_image_tag', 'group_icon_tag', 'display_no_benefit', 'display_with_all', 'display_mobile_use_dc', 'display_mobile_use_mileage']; var __aData = this.__aBenefit; // 그룹이미지 $('.myshop_benefit_group_image_tag').attr({alt: __aData['group_name'], src: __aData['group_image']}); // 그룹아이콘 $('.myshop_benefit_group_icon_tag').attr({alt: __aData['group_name'], src: __aData['group_icon']}); if (__aData['display_no_benefit'] === true) { $('.myshop_benefit_display_no_benefit').removeClass('displaynone').show(); } if (__aData['display_with_all'] === true) { $('.myshop_benefit_display_with_all').removeClass('displaynone').show(); } if (__aData['display_mobile_use_dc'] === true) { $('.myshop_benefit_display_mobile_use_dc').removeClass('displaynone').show(); } if (__aData['display_mobile_use_mileage'] === true) { $('.myshop_benefit_display_mobile_use_mileage').removeClass('displaynone').show(); } $.each(__aData, function(key, val) { if ($.inArray(key, aFilter) === -1) { $('.myshop_benefit_' + key).html(val); } }); } }; /** * 비동기식 데이터 - 비동기장바구니 레이어 */ CAPP_ASYNC_METHODS.aDatasetList.push('BasketLayer'); CAPP_ASYNC_METHODS.BasketLayer = { __sBasketLayerHtml: null, __$target: $('#ec_async_basket_layer_container'), isUse: function() { if (this.__$target.length > 0) { return true; } return false; }, execute: function() { $.ajax({ url: '/order/async_basket_layer.html?__popupPage=T', async: false, success: function(data) { var sBasketLayerHtml = data; var sBasketLayerStyle = ''; var sBasketLayerBody = ''; sBasketLayerHtml = sBasketLayerHtml.replace(//gi,''); // 스크립트 제거 sBasketLayerHtml = sBasketLayerHtml.replace(//gi,''); // 옵티마이져 제거 var regexStyle = //; // Style 추출 if (regexStyle.exec(sBasketLayerHtml) != null) sBasketLayerStyle = regexStyle.exec(sBasketLayerHtml)[0]; var regexBody = /([\s\S]*?)<\/body>/; // Body 추출 if (regexBody.exec(sBasketLayerHtml) != null) sBasketLayerBody = regexBody.exec(sBasketLayerHtml)[1]; CAPP_ASYNC_METHODS.BasketLayer.__sBasketLayerHtml = sBasketLayerStyle + sBasketLayerBody; } }); this.__$target.html(this.__sBasketLayerHtml); } }; /** * 비동기식 데이터 - Benefit */ CAPP_ASYNC_METHODS.aDatasetList.push('Grade'); CAPP_ASYNC_METHODS.Grade = { __aGrade: null, __$target: $('#sGradeAutoDisplayArea'), isUse: function() { if (CAPP_ASYNC_METHODS.IS_LOGIN === true) { if (this.__$target.length > 0) { return true; } } return false; }, setData: function(aData) { this.__aGrade = aData; }, execute: function() { var __aData = this.__aGrade; var aFilter = ['bChangeMaxTypePrice', 'bChangeMaxTypePriceAndCount', 'bChangeMaxTypePriceOrCount', 'bChangeMaxTypeCount']; var aMaxDisplayJson = { "bChangeMaxTypePrice": [ {"sId": "sChangeMaxTypePriceArea"} ], "bChangeMaxTypePriceAndCount": [ {"sId": "sChangeMaxTypePriceAndCountArea"} ], "bChangeMaxTypePriceOrCount": [ {"sId": "sChangeMaxTypePriceOrCountArea"} ], "bChangeMaxTypeCount": [ {"sId": "sChangeMaxTypeCountArea"} ] }; if ($('.sNextGroupIconArea').length > 0) { if (__aData['bDisplayNextGroupIcon'] === true) { $('.sNextGroupIconArea').removeClass('displaynone').show(); $('.myshop_benefit_next_group_icon_tag').attr({alt: __aData['sNextGrade'], src: __aData['sNextGroupIcon']}); } else { $('.sNextGroupIconArea').addClass('displaynone'); } } var sIsAutoGradeDisplay = "F"; $.each(__aData, function(key, val) { if ($.inArray(key, aFilter) === -1) { return true; } if (val === true) { if ($('#'+aMaxDisplayJson[key][0].sId).length > 0) { $('#' + aMaxDisplayJson[key][0].sId).removeClass('displaynone').show(); } sIsAutoGradeDisplay = "T"; } }); if (sIsAutoGradeDisplay == "T" && $('#sGradeAutoDisplayArea .sAutoGradeDisplay').length > 0) { $('#sGradeAutoDisplayArea .sAutoGradeDisplay').addClass('displaynone'); } $.each(__aData, function(key, val) { if ($.inArray(key, aFilter) === -1) { if ($('.xans-member-var-' + key).length > 0) { $('.xans-member-var-' + key).html(val); } } }); } }; /** * 비동기식 데이터 - Benefit */ CAPP_ASYNC_METHODS.aDatasetList.push('AutomaticGradeShow'); CAPP_ASYNC_METHODS.AutomaticGradeShow = { __aGrade: null, __$target: $('#sAutomaticGradeShowArea'), isUse: function() { if (CAPP_ASYNC_METHODS.IS_LOGIN === true) { if (this.__$target.length > 0) { return true; } } return false; }, setData: function(aData) { this.__aGrade = aData; }, execute: function() { var __aData = this.__aGrade; /** * 아이콘 표기 제외 if ($('.sNextGroupIconArea').length > 0) { if (__aData['bDisplayNextGroupIcon'] === true) { $('.sNextGroupIconArea').removeClass('displaynone').show(); $('.myshop_benefit_next_group_icon_tag').attr({alt: __aData['sNextGrade'], src: __aData['sNextGroupIcon']}); } else { $('.sNextGroupIconArea').addClass('displaynone'); } } */ var sIsAutoGradeDisplay = "F"; $.each(__aData, function(key, val) { if (val === true) { sIsAutoGradeDisplay = "T"; return false; } }); if (sIsAutoGradeDisplay == "T" && $('#sAutomaticGradeShowArea .sAutoGradeDisplay').length > 0) { $('#sAutomaticGradeShowArea .sAutoGradeDisplay').addClass('displaynone'); } $.each(__aData, function(key, val) { if ($('.xans-member-var-' + key).length > 0) { $('.xans-member-var-' + key).html(val); } }); } }; /** * 비동기식 데이터 - 비동기장바구니 레이어 */ CAPP_ASYNC_METHODS.aDatasetList.push('MobileMutiPopup'); CAPP_ASYNC_METHODS.MobileMutiPopup = { __$target: $('div[class^="ec-async-multi-popup-layer-container"]'), isUse: function() { if (this.__$target.length > 0) { return true; } return false; }, execute: function() { for (var i=0; i < this.__$target.length ; i++) { $.ajax({ url: '/exec/front/popup/AjaxMultiPopup?index='+i, data : EC_ASYNC_MULTI_POPUP_OPTION[i], dataType: "json", success : function (oResult) { switch (oResult.code) { case '0000' : if (oResult.data.length < 1) { break; } $('.ec-async-multi-popup-layer-container-' + oResult.data.html_index).html(oResult.data.html_text); if (oResult.data.type == 'P') { BANNER_POPUP_OPEN.setPopupSetting(); BANNER_POPUP_OPEN.setPopupWidth(); BANNER_POPUP_OPEN.setPopupClose(); } else { /** * 이중 스크롤 방지 클래스 추가(비동기) * */ $('body').addClass('eMobilePopup'); $('body').width('100%'); BANNER_POPUP_OPEN.setFullPopupSetting(); BANNER_POPUP_OPEN.setFullPopupClose(); } break; default : break; } }, error : function () { } }); } } }; /** * 라이브 링콘 on/off이미지 */ CAPP_ASYNC_METHODS.aDatasetList.push('Livelinkon'); CAPP_ASYNC_METHODS.Livelinkon = { __$target: $('#ec_livelinkon_campain_on'), __$target2: $('#ec_livelinkon_campain_off'), isUse: function() { if (this.__$target.length > 0 && this.__$target2.length > 0) { return true; } return false; }, execute: function() { var sCampaignid = ''; if (EC_ASYNC_LIVELINKON_ID != undefined) { sCampaignid = EC_ASYNC_LIVELINKON_ID } $.ajax({ url: '/exec/front/Livelinkon/Campaignajax?campaign_id='+sCampaignid, async: false, success: function(data) { if (data == 'on') { CAPP_ASYNC_METHODS.Livelinkon.__$target.removeClass('displaynone').show(); CAPP_ASYNC_METHODS.Livelinkon.__$target2.removeClass('displaynone').hide(); } else if (data == 'off') { CAPP_ASYNC_METHODS.Livelinkon.__$target.removeClass('displaynone').hide(); CAPP_ASYNC_METHODS.Livelinkon.__$target2.removeClass('displaynone').show(); } else { CAPP_ASYNC_METHODS.Livelinkon.__$target.removeClass('displaynone').hide(); CAPP_ASYNC_METHODS.Livelinkon.__$target2.removeClass('displaynone').hide(); } } }); } }; /** * 비동기식 데이터 - 마이쇼핑 > 주문 카운트 (주문 건수 / CS건수 / 예전주문) */ CAPP_ASYNC_METHODS.aDatasetList.push('OrderHistoryCount'); CAPP_ASYNC_METHODS.OrderHistoryCount = { __sTotalOrder: null, __sTotalOrderCs: null, __sTotalOrderOld: null, __$target: $('#ec_myshop_total_orders'), __$target2: $('#ec_myshop_total_orders_cs'), __$target3: $('#ec_myshop_total_orders_old'), isUse: function() { if (CAPP_ASYNC_METHODS.IS_LOGIN === true) { if (this.__$target.length > 0) { return true; } if (this.__$target2.length > 0) { return true; } if (this.__$target3.length > 0) { return true; } } return false; }, setData: function(aData) { this.__sTotalOrder = aData['total_orders']; this.__sTotalOrderCs = aData['total_orders_cs']; this.__sTotalOrderOld = aData['total_orders_old']; }, execute: function() { this.__$target.html(this.__sTotalOrder); this.__$target2.html(this.__sTotalOrderCs); this.__$target3.html(this.__sTotalOrderOld); } }; /** * 주문조회 > 주문내역조회 및 취소/교환/반품내역 등 탭(OrderHistoryTab) 갯수 비동기호출 */ CAPP_ASYNC_METHODS.aDatasetList.push('OrderHistoryTab'); CAPP_ASYNC_METHODS.OrderHistoryTab = { __$targetTotalOrders: $('#xans_myshop_total_orders'), __$targetTotalOrdersCs: $('#xans_myshop_total_orders_cs'), __$targetTotalOrdersPast: $('#xans_myshop_total_orders_past'), __$targetTotalOrdersOld: $('#xans_myshop_total_orders_old'), isUse: function() { if (CAPP_ASYNC_METHODS.IS_LOGIN === true) { if ($('.xans-myshop-orderhistorytab').length > 0) { return true; } } return false; }, execute: function() { try { var mode = this.getUrlParam('mode'); var order_id = this.getUrlParam('order_id'); var order_status = this.getUrlParam('order_status'); var history_start_date = this.getUrlParam('history_start_date'); var history_end_date = this.getUrlParam('history_end_date'); var past_year = this.getUrlParam('past_year'); var count = this.getUrlParam('count'); var sPathName = window.location.pathname; var oParameters = { 'mode': mode == null ? '' : mode, 'order_id': order_id == null ? '' : order_id, 'order_status': order_status == null ? '' : order_status, 'history_start_date': history_start_date == null ? '' : history_start_date, 'history_end_date': history_end_date == null ? '' : history_end_date, 'past_year': past_year == null ? '' : past_year, 'count': count == null ? '' : count, 'page_name': sPathName.substring(sPathName.lastIndexOf("/") + 1, sPathName.indexOf('.')) } if (typeof EC_ASYNC_ORDERHISTORYTAB_ORDER_ID !== 'undefined') { oParameters['encrypted_str'] = EC_ASYNC_ORDERHISTORYTAB_ORDER_ID; } var oThis = this; $.ajax({ url: '/exec/front/Myshop/OrderHistoryTab', dataType: 'json', data: oParameters, success: function (aData) { if (aData['result'] === true) { oThis.__$targetTotalOrders.html(aData['total_orders']); oThis.__$targetTotalOrdersCs.html(aData['total_orders_cs']); oThis.__$targetTotalOrdersOld.html(aData['total_orders_old']); oThis.__$targetTotalOrdersPast.html(aData['total_orders_past']); var oTabATagList = { 'param' : $('.tab_class a'), 'param_cs' : $('.tab_class_cs a'), 'param_past' : $('.tab_class_past a'), 'param_old' : $('.tab_class_old a'), }; var sHref; $.each(oTabATagList, function(sKey, oTarget) { if (oTarget.length > 0) { sHref = oTarget.attr("href"); sHref = sHref.replace("$" + sKey, aData[sKey]); oTarget.attr("href", sHref); } }); $("." + aData['selected_tab_class']).addClass('selected'); if (aData['is_past_list_display'] === false) { $('.tab_class_past').addClass("displaynone"); } else { $('.tab_class_past').removeClass("displaynone"); } if (aData['old_list_display'] === false) { $('.tab_class_old').addClass("displaynone"); } else { $('.tab_class_old').removeClass("displaynone"); } } } }); } catch (oError) { this.errorAjaxCall(oError) } }, getUrlParam : function(name) { var param = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href); if (param == null) { return null; } else { return decodeURI(param[1]) || null; } }, errorAjaxCall : function(oError) { var sError = oError.toString(); var aMatch = sError.match(/Error*/g); if ( typeof(oError) !== 'object' || aMatch == null || aMatch.length < 1 || !oError.stack ) return; $.ajax({ url: '/exec/front/order/FormJserror/', method: 'POST', cache: false, async : false, data: { errorMessage : oError.message, errorStack : oError.stack, errorName : oError.name } }); } }; var PathRoleValidator = (function() { /** * Milage, Deposit 의 경우 처리되지 말아야할 페이지 확인 * @returns {boolean} */ function isInvalidPathRole() { // path role var sCurrentPathRole = null; // // euckr 환경에서 path role 획득 if (SHOP.getProductVer() === 1) { // path 와 role 매핑 var aPathRoleMap = { '/myshop/index.html': 'MYSHOP_MAIN', '/myshop/mileage/historyList.html': 'MYSHOP_MILEAGE_LIST', '/myshop/deposits/historyList.html': 'MYSHOP_DEPOSIT_LIST', '/order/orderform.html': 'ORDER_ORDERFORM' }; // 페이지 경로로부터 path role 획득 sCurrentPathRole = aPathRoleMap[document.location.pathname]; // utf8 환경에서 path role 획득 } else { // 현재 페이지 path role 획득 sCurrentPathRole = $('meta[name="path_role"]').attr('content'); } // 처리되면 안되는 경로 var aInvalidPathRole = [ 'MYSHOP_MAIN', 'MYSHOP_MILEAGE_LIST', 'MYSHOP_DEPOSIT_LIST', 'ORDER_ORDERFORM' ]; return $.inArray(sCurrentPathRole, aInvalidPathRole) >= 0; } return { isInvalidPathRole: isInvalidPathRole }; })(); $(document).ready(function() { CAPP_ASYNC_METHODS.init(); }); var EC_MANAGE_PRODUCT_RECENT = { getRecentImageUrl : function() { var sStorageKey = 'localRecentProduct' + EC_SDE_SHOP_NUM; if (typeof(sessionStorage[sStorageKey]) !== 'undefined') { var sRecentData = sessionStorage.getItem(sStorageKey); var oJsonData = JSON.parse(sRecentData); var sImageSrc = ''; if (oJsonData[0] !== undefined) { sImageSrc = oJsonData[0].sImgSrc; } document.location.replace('recentproduct://setinfo?simg_src=' + sImageSrc); } } }; /*! ResponsiveSlides.js v1.54 * http://responsiveslides.com * http://viljamis.com * * Copyright (c) 2011-2012 @viljamis * Available under the MIT license */ /*jslint browser: true, sloppy: true, vars: true, plusplus: true, indent: 2 */ (function ($, window, i) { $.fn.responsiveSlides = function (options) { // Default settings var settings = $.extend({ "auto": true, // Boolean: Animate automatically, true or false "speed": 500, // Integer: Speed of the transition, in milliseconds "timeout": 4000, // Integer: Time between slide transitions, in milliseconds "pager": false, // Boolean: Show pager, true or false "nav": false, // Boolean: Show navigation, true or false "random": false, // Boolean: Randomize the order of the slides, true or false "pause": false, // Boolean: Pause on hover, true or false "pauseControls": true, // Boolean: Pause when hovering controls, true or false "prevText": "Previous", // String: Text for the "previous" button "nextText": "Next", // String: Text for the "next" button "maxwidth": "", // Integer: Max-width of the slideshow, in pixels "navContainer": "", // Selector: Where auto generated controls should be appended to, default is after the
    "manualControls": "", // Selector: Declare custom pager navigation "namespace": "rslides", // String: change the default namespace used "before": $.noop, // Function: Before callback "after": $.noop // Function: After callback }, options); return this.each(function () { // Index for namespacing i++; var $this = $(this), // Local variables vendor, selectTab, startCycle, restartCycle, rotate, $tabs, // Helpers index = 0, $slide = $this.children(), length = $slide.size(), fadeTime = parseFloat(settings.speed), waitTime = parseFloat(settings.timeout), maxw = parseFloat(settings.maxwidth), // Namespacing namespace = settings.namespace, namespaceIdx = namespace + i, // Classes navClass = namespace + "_nav " + namespaceIdx + "_nav", activeClass = namespace + "_here", visibleClass = namespaceIdx + "_on", slideClassPrefix = namespaceIdx + "_s", // Pager $pager = $("
      "), // Styles for visible and hidden slides visible = {"float": "left", "position": "relative", "opacity": 1, "zIndex": 2}, hidden = {"float": "none", "position": "absolute", "opacity": 0, "zIndex": 1}, // Detect transition support supportsTransitions = (function () { var docBody = document.body || document.documentElement; var styles = docBody.style; var prop = "transition"; if (typeof styles[prop] === "string") { return true; } // Tests for vendor specific prop vendor = ["Moz", "Webkit", "Khtml", "O", "ms"]; prop = prop.charAt(0).toUpperCase() + prop.substr(1); var i; for (i = 0; i < vendor.length; i++) { if (typeof styles[vendor[i] + prop] === "string") { return true; } } return false; })(), // Fading animation slideTo = function (idx) { settings.before(idx); // If CSS3 transitions are supported if (supportsTransitions) { $slide .removeClass(visibleClass) .css(hidden) .eq(idx) .addClass(visibleClass) .css(visible); index = idx; setTimeout(function () { settings.after(idx); }, fadeTime); // If not, use jQuery fallback } else { $slide .stop() .fadeOut(fadeTime, function () { $(this) .removeClass(visibleClass) .css(hidden) .css("opacity", 1); }) .eq(idx) .fadeIn(fadeTime, function () { $(this) .addClass(visibleClass) .css(visible); settings.after(idx); index = idx; }); } }; // Random order if (settings.random) { $slide.sort(function () { return (Math.round(Math.random()) - 0.5); }); $this .empty() .append($slide); } // Add ID's to each slide $slide.each(function (i) { this.id = slideClassPrefix + i; }); // Add max-width and classes $this.addClass(namespace + " " + namespaceIdx); if (options && options.maxwidth) { $this.css("max-width", maxw); } // Hide all slides, then show first one $slide .hide() .css(hidden) .eq(0) .addClass(visibleClass) .css(visible) .show(); // CSS transitions if (supportsTransitions) { $slide .show() .css({ // -ms prefix isn't needed as IE10 uses prefix free version "-webkit-transition": "opacity " + fadeTime + "ms ease-in-out", "-moz-transition": "opacity " + fadeTime + "ms ease-in-out", "-o-transition": "opacity " + fadeTime + "ms ease-in-out", "transition": "opacity " + fadeTime + "ms ease-in-out" }); } // Only run if there's more than one slide if ($slide.size() > 1) { // Make sure the timeout is at least 100ms longer than the fade if (waitTime < fadeTime + 100) { return; } // Pager if (settings.pager && !settings.manualControls) { var tabMarkup = []; $slide.each(function (i) { var n = i + 1; tabMarkup += "
    • " + "" + n + "" + "
    • "; }); $pager.append(tabMarkup); // Inject pager if (options.navContainer) { $(settings.navContainer).append($pager); } else { $this.after($pager); } } // Manual pager controls if (settings.manualControls) { $pager = $(settings.manualControls); $pager.addClass(namespace + "_tabs " + namespaceIdx + "_tabs"); } // Add pager slide class prefixes if (settings.pager || settings.manualControls) { $pager.find('li').each(function (i) { $(this).addClass(slideClassPrefix + (i + 1)); }); } // If we have a pager, we need to set up the selectTab function if (settings.pager || settings.manualControls) { $tabs = $pager.find('a'); // Select pager item selectTab = function (idx) { $tabs .closest("li") .removeClass(activeClass) .eq(idx) .addClass(activeClass); }; } // Auto cycle if (settings.auto) { startCycle = function () { rotate = setInterval(function () { // Clear the event queue $slide.stop(true, true); var idx = index + 1 < length ? index + 1 : 0; // Remove active state and set new if pager is set if (settings.pager || settings.manualControls) { selectTab(idx); } slideTo(idx); }, waitTime); }; // Init cycle startCycle(); } // Restarting cycle restartCycle = function () { if (settings.auto) { // Stop clearInterval(rotate); // Restart startCycle(); } }; // Pause on hover if (settings.pause) { $this.hover(function () { clearInterval(rotate); }, function () { restartCycle(); }); } // Pager click event handler if (settings.pager || settings.manualControls) { $tabs.bind("click", function (e) { e.preventDefault(); if (!settings.pauseControls) { restartCycle(); } // Get index of clicked tab var idx = $tabs.index(this); // Break if element is already active or currently animated if (index === idx || $("." + visibleClass).queue('fx').length) { return; } // Remove active state from old tab and set new one selectTab(idx); // Do the animation slideTo(idx); }) .eq(0) .closest("li") .addClass(activeClass); // Pause when hovering pager if (settings.pauseControls) { $tabs.hover(function () { clearInterval(rotate); }, function () { restartCycle(); }); } } // Navigation if (settings.nav) { var navMarkup = "" + ""; // Inject navigation if (options.navContainer) { $(settings.navContainer).append(navMarkup); } else { $this.after(navMarkup); } var $trigger = $("." + namespaceIdx + "_nav"), $prev = $trigger.filter(".prev"); // Click event handler $trigger.bind("click", function (e) { e.preventDefault(); var $visibleClass = $("." + visibleClass); // Prevent clicking if currently animated if ($visibleClass.queue('fx').length) { return; } // Adds active class during slide animation // $(this) // .addClass(namespace + "_active") // .delay(fadeTime) // .queue(function (next) { // $(this).removeClass(namespace + "_active"); // next(); // }); // Determine where to slide var idx = $slide.index($visibleClass), prevIdx = idx - 1, nextIdx = idx + 1 < length ? index + 1 : 0; // Go to slide slideTo($(this)[0] === $prev[0] ? prevIdx : nextIdx); if (settings.pager || settings.manualControls) { selectTab($(this)[0] === $prev[0] ? prevIdx : nextIdx); } if (!settings.pauseControls) { restartCycle(); } }); // Pause when hovering navigation if (settings.pauseControls) { $trigger.hover(function () { clearInterval(rotate); }, function () { restartCycle(); }); } } } // Max-width fallback if (typeof document.body.style.maxWidth === "undefined" && options.maxwidth) { var widthSupport = function () { $this.css("width", "100%"); if ($this.width() > maxw) { $this.css("width", maxw); } }; // Init fallback widthSupport(); $(window).bind("resize", function () { widthSupport(); }); } }); }; })(jQuery, this, 0); // Slideshow 1 $("#slider1").responsiveSlides({ auto: true, pager: true, nav: true, speed: 500, pause: false, /*maxwidth: 800,*/ namespace: "centered-btns" }); // Slideshow 2 $("#slider2").responsiveSlides({ auto: false, pager: true, nav: true, speed: 500, /*maxwidth: 800,*/ namespace: "centered-btns" }); // Slideshow 3 $("#slider3").responsiveSlides({ auto: true, pager: true, nav: true, speed: 500, /*maxwidth: 800,*/ namespace: "large-btns" }); /** * 움직이는 배너 Jquery Plug-in * @author cafe24 */ (function($){ $.fn.floatBanner = function(options) { options = $.extend({}, $.fn.floatBanner.defaults , options); return this.each(function() { var aPosition = $(this).position(); var jbOffset = $(this).offset(); var node = this; $(window).scroll(function() { var _top = $(document).scrollTop(); _top = (aPosition.top < _top) ? _top : aPosition.top; setTimeout(function () { var newinit = $(document).scrollTop(); if ( newinit > jbOffset.top ) { _top -= jbOffset.top; var container_height = $("#wrap").height(); var quick_height = $(node).height(); var cul = container_height - quick_height; if(_top > cul){ _top = cul; } }else { _top = 0; } $(node).stop().animate({top: _top}, options.animate); }, options.delay); }); }); }; $.fn.floatBanner.defaults = { 'animate' : 500, 'delay' : 500 }; })(jQuery); /** * 문서 구동후 시작 */ $(document).ready(function(){ $('#banner:visible, #quick:visible').floatBanner(); //placeholder $(".ePlaceholder input, .ePlaceholder textarea").each(function(i){ var placeholderName = $(this).parents().attr('title'); $(this).attr("placeholder", placeholderName); }); /* placeholder ie8, ie9 */ $.fn.extend({ placeholder : function() { //IE 8 버전에는 hasPlaceholderSupport() 값이 false를 리턴 if (hasPlaceholderSupport() === true) { return this; } //hasPlaceholderSupport() 값이 false 일 경우 아래 코드를 실행 return this.each(function(){ var findThis = $(this); var sPlaceholder = findThis.attr('placeholder'); if ( ! sPlaceholder) { return; } findThis.wrap('